#ifndef FILE_Debug_HPP
#define FILE_Debug_HPP

/// This header is a _DEBUG_ header. Its aim is that you may know if you are 
/// passing by a certain point, without having a debugger. The macros names are 
/// extremly short because of that.
/// Renaming them won't broke anything, these are just there to simplify
/// your debugging. If you think this is too long, you may rename these D
/// and S.
/// the base choices are (all outputed to debug) :
/// DC : The file, and the line.
/// DCS : The previous, plus a string (composed or not).

#include <cassert>

#include "Trace.hpp"

#define DC { se::System::Log::Global::trace.Write(__FILE__,__LINE__,"DC"); }
#define DCS(s) {\
               std::stringstream ss;\
               {ss<<s;}\
               se::System::Log::Global::trace.Write(__FILE__,__LINE__,ss.str()));\
               }

#ifdef NDEBUG
	#define SE_REMOVE_ON_RELEASE(exp)
#else // NDEBUG
	#define SE_REMOVE_ON_RELEASE(exp) exp
#endif // NDEBUG

#endif // FILE_Debug_HPP
